﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Woodstock.Common
{
    /// <summary>
    /// Abstract user command. Needs to be interpreted by the Pilot to control the craft
    /// </summary>
    public class Command : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

        #region Direction and intensity


        // This gives the plane its commands. It's the pilot responsability to make this commands happen, regardless of the current enviromental status of the model.
        // The numbers go from -100 to 100, indicating intensity. 100 on X means "go up full force", 100 on Z means "go forward full force", 100 Y means "turn right at 90 degrees", 
        // 50 Y means "turn right at 45 degrees"



        private double _x;
        public double X
        {
            get { return _x; }
            set { _x = value; NotifyPropertyChanged("X"); }
        }

        private double _y;
        public double Y
        {
            get { return _y; }
            set { _y = value; NotifyPropertyChanged("Y"); }
        }

        private double _z;
        public double Z
        {
            get { return _z; }
            set { _z = value; NotifyPropertyChanged("Z"); }
        }

        #endregion
    }
}
